/**
 * ----------------------------------------
 * animation flip-2-hor-top-1
 * ----------------------------------------
 */
.flip {
    -webkit-animation: flip-2-hor-top-1 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955) both;
    animation: flip-2-hor-top-1 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955) both;
}

@-webkit-keyframes flip-2-hor-top-1 {
    0% {
        -webkit-transform: translateY(0) rotateX(0);
        transform: translateY(0) rotateX(0);
        -webkit-transform-origin: 50% 0;
        transform-origin: 50% 0;
    }

    100% {
        -webkit-transform: translateY(-100%) rotateX(-180deg);
        transform: translateY(-100%) rotateX(-180deg);
        -webkit-transform-origin: 50% 100%;
        transform-origin: 50% 100%;
    }
}

@keyframes flip-2-hor-top-1 {
    0% {
        -webkit-transform: translateY(0) rotateX(0);
        transform: translateY(0) rotateX(0);
        -webkit-transform-origin: 50% 0;
        transform-origin: 50% 0;
    }

    100% {
        -webkit-transform: translateY(-100%) rotateX(-180deg);
        transform: translateY(-100%) rotateX(-180deg);
        -webkit-transform-origin: 50% 100%;
        transform-origin: 50% 100%;
    }
}

/**
 * ----------------------------------------
 * animation slide-top
 * ----------------------------------------
 */
.slide-top {
    -webkit-animation: slide-top 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
    animation: slide-top 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

@-webkit-keyframes slide-top {
    0% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }

    100% {
        -webkit-transform: translateY(-30%);
        transform: translateY(-30%);
    }
}

@keyframes slide-top {
    0% {
        -webkit-transform: translateY(60%);
        transform: translateY(60%);
    }

    100% {
        -webkit-transform: translateY(0px);
        transform: translateY(0px);
    }
}

/**
 * ----------------------------------------
 * animation slide-bottom
 * ----------------------------------------
 */
.slide-bottom {
    -webkit-animation: slide-bottom 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
    animation: slide-bottom 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

@-webkit-keyframes slide-bottom {
    0% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }

    100% {
        -webkit-transform: translateY(190%);
        transform: translateY(190%);
    }
}

@keyframes slide-bottom {
    0% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }

    100% {
        -webkit-transform: translateY(190%);
        transform: translateY(190%);
    }
}

/**
 * ----------------------------------------
 * animation small-large
 * ----------------------------------------
 */
.small-large {
    animation: small-large 1000ms linear both;
}

@keyframes small-large {
    0% {
        transform: matrix3d(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
    }

    3.4% {
        transform: matrix3d(
                        0.316,
                        0,
                        0,
                        0,
                        0,
                        0.407,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    4.7% {
        transform: matrix3d(
                        0.45,
                        0,
                        0,
                        0,
                        0,
                        0.599,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    6.81% {
        transform: matrix3d(
                        0.659,
                        0,
                        0,
                        0,
                        0,
                        0.893,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    9.41% {
        transform: matrix3d(
                        0.883,
                        0,
                        0,
                        0,
                        0,
                        1.168,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    10.21% {
        transform: matrix3d(
                        0.942,
                        0,
                        0,
                        0,
                        0,
                        1.226,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    13.61% {
        transform: matrix3d(
                        1.123,
                        0,
                        0,
                        0,
                        0,
                        1.332,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    14.11% {
        transform: matrix3d(
                        1.141,
                        0,
                        0,
                        0,
                        0,
                        1.331,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    17.52% {
        transform: matrix3d(
                        1.208,
                        0,
                        0,
                        0,
                        0,
                        1.239,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    18.72% {
        transform: matrix3d(
                        1.212,
                        0,
                        0,
                        0,
                        0,
                        1.187,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    21.32% {
        transform: matrix3d(
                        1.196,
                        0,
                        0,
                        0,
                        0,
                        1.069,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    24.32% {
        transform: matrix3d(
                        1.151,
                        0,
                        0,
                        0,
                        0,
                        0.96,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    25.23% {
        transform: matrix3d(
                        1.134,
                        0,
                        0,
                        0,
                        0,
                        0.938,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    29.03% {
        transform: matrix3d(
                        1.063,
                        0,
                        0,
                        0,
                        0,
                        0.897,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    29.93% {
        transform: matrix3d(
                        1.048,
                        0,
                        0,
                        0,
                        0,
                        0.899,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    35.54% {
        transform: matrix3d(
                        0.979,
                        0,
                        0,
                        0,
                        0,
                        0.962,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    36.74% {
        transform: matrix3d(
                        0.972,
                        0,
                        0,
                        0,
                        0,
                        0.979,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    41.04% {
        transform: matrix3d(
                        0.961,
                        0,
                        0,
                        0,
                        0,
                        1.022,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    44.44% {
        transform: matrix3d(
                        0.966,
                        0,
                        0,
                        0,
                        0,
                        1.032,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    52.15% {
        transform: matrix3d(
                        0.991,
                        0,
                        0,
                        0,
                        0,
                        1.006,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    59.86% {
        transform: matrix3d(
                        1.006,
                        0,
                        0,
                        0,
                        0,
                        0.99,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    63.26% {
        transform: matrix3d(
                        1.007,
                        0,
                        0,
                        0,
                        0,
                        0.992,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    75.28% {
        transform: matrix3d(
                        1.001,
                        0,
                        0,
                        0,
                        0,
                        1.003,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    85.49% {
        transform: matrix3d(0.999, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
    }

    90.69% {
        transform: matrix3d(
                        0.999,
                        0,
                        0,
                        0,
                        0,
                        0.999,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1
        );
    }

    100% {
        transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
    }
}

/**
 * ----------------------------------------
 * animation swoosh
 * ----------------------------------------
 */
.swoosh {
    animation: swoosh 1000ms linear both;
}

@keyframes swoosh {
    0% {
        transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -300, 0, 0, 1);
    }
    1.3% {
        transform: matrix3d(
                        3.905,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        -237.02,
                        0,
                        0,
                        1
        );
    }
    2.55% {
        transform: matrix3d(
                        4.554,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        -182.798,
                        0,
                        0,
                        1
        );
    }
    4.1% {
        transform: matrix3d(
                        4.025,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        -125.912,
                        0,
                        0,
                        1
        );
    }
    5.71% {
        transform: matrix3d(
                        3.039,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        -79.596,
                        0,
                        0,
                        1
        );
    }
    8.11% {
        transform: matrix3d(
                        1.82,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        -31.647,
                        0,
                        0,
                        1
        );
    }
    8.81% {
        transform: matrix3d(
                        1.581,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        -21.84,
                        0,
                        0,
                        1
        );
    }
    11.96% {
        transform: matrix3d(
                        1.034,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        4.825,
                        0,
                        0,
                        1
        );
    }
    12.11% {
        transform: matrix3d(
                        1.023,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        5.53,
                        0,
                        0,
                        1
        );
    }
    15.07% {
        transform: matrix3d(
                        0.947,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        12.662,
                        0,
                        0,
                        1
        );
    }
    16.12% {
        transform: matrix3d(
                        0.951,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        13.007,
                        0,
                        0,
                        1
        );
    }
    27.23% {
        transform: matrix3d(
                        1.001,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        2.352,
                        0,
                        0,
                        1
        );
    }
    27.58% {
        transform: matrix3d(
                        1.001,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        2.121,
                        0,
                        0,
                        1
        );
    }
    38.34% {
        transform: matrix3d(
                        1,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        -0.311,
                        0,
                        0,
                        1
        );
    }
    40.09% {
        transform: matrix3d(
                        1,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        -0.291,
                        0,
                        0,
                        1
        );
    }
    50% {
        transform: matrix3d(
                        1,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        0,
                        0,
                        0,
                        1,
                        0,
                        -0.048,
                        0,
                        0,
                        1
        );
    }
    60.56% {
        transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.007, 0, 0, 1);
    }
    82.78% {
        transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
    }
    100% {
        transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
    }
}

/**
 * ----------------------------------------
 * animation scale-up-center
 * ----------------------------------------
 */
.scale-up-center {
    -webkit-animation: scale-up-center 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;
    animation: scale-up-center 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;
}

@-webkit-keyframes scale-up-center {
    0% {
        -webkit-transform: scale(0.5);
        transform: scale(0.5);
    }
    100% {
        -webkit-transform: scale(1);
        transform: scale(1);
    }
}

@keyframes scale-up-center {
    0% {
        -webkit-transform: scale(0.5);
        transform: scale(0.5);
    }
    100% {
        -webkit-transform: scale(1);
        transform: scale(1);
    }
}

/**
 * ----------------------------------------
 * animation scale-down-center
 * ----------------------------------------
 */
.scale-down-center {
    -webkit-animation: scale-down-center 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
    animation: scale-down-center 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

@-webkit-keyframes scale-down-center {
    0% {
        -webkit-transform: scale(1);
        transform: scale(1);
    }
    100% {
        -webkit-transform: scale(0.5);
        transform: scale(0.5);
    }
}

@keyframes scale-down-center {
    0% {
        -webkit-transform: scale(1);
        transform: scale(1);
    }
    100% {
        -webkit-transform: scale(0.5);
        transform: scale(0.5);
    }
}
